Per padroneggiare veramente Git, bisogna guardare oltre la superficie amichevole Porcellana comandi per comprendere il meccanismo interno—il motore a basso livello che gestisce il database degli oggetti interni di Git. Questo database è un sistema di file basato sull'indirizzamento del contenuto, dove ogni pezzo di dati viene memorizzato come oggetto immutabile.
1. Porcellana vs. Meccanismo interno
Porcellana si riferisce ai comandi di alto livello (come git status) pensati per l'interazione umana. meccanismo interno si riferisce ai comandi a basso livello che manipolano direttamente il database degli oggetti di Git, fornendoci l'accesso alla vera rappresentazione interna di Git.
2. Il database degli oggetti
Git funziona come un archivio chiave-valore all'interno della cartella .git/objects directory, che contiene gli oggetti interni: blob, alberi, commit, e tag. I branch, anche se spesso menzionati insieme agli oggetti, servono come riferimenti a questi commit.
3. Indirizzamento SHA-1
Ogni oggetto è identificato da un codice univoco a 40 caratteri in esadecimale SHA-1. Git ottimizza lo spazio di archiviazione utilizzando i primi due caratteri come nome di una sottocartella (ad esempio, af/) e i restanti 38 come nome del file.